PCSXBox - PSX Emulator for XBox v23

Updated to madmab edition interface CFv1b35. See "Interface Changelog.txt"
Bumped up the version number just for kicks.

"Lock free.. like it should be!"
"More features than you can shake a stick at!"

* Added in XA volume attenuation code from pcsx_re-armed.  This fixes the issue of the radio always playing in GTA 2.  This should also fix any games that rely on setting the XA volume to 0 to "turn off" sound or music.  Volume/control issues which existed in games that use XA for music should also be fixed.

* Added in option to "Enable XA Attenuation (GTA 2, etc)- Yes/No".  It defaults to No.  Although setting it to Yes fixes GTA 2 and possibly some other games having it on may cause a slight framerate loss and also some games seem to end up with distorted XA audio when using this code.  So for now we default to off.  Set it to "on" if you suspect that a game that uses XA audio is not properly functioning.  Just keep in mind that the framerate may drop some or the XA audio in cutscene movies may sound distorted as a result.

* Added global configuration option to "Show Playstation Logo Yes/No".  You can find it in Configuration->Global Emu Specific Options.  I'm sure XtecuterX73 will be a happy camper now.  :D

* Added in the multitap code from pcsx re-armed.  This allows many more "multitap" capable games to work correctly.  Previously the multitap option appeared to only work with "Micro machines v3".  The new code has been tested with the following games.  Crash Bash, Crash Team Racing, MicroMachines, NBA Hangtime, NBA Jam, Rampage Through Time and Rampage 2: Universal Tour.  Two games that do not appear to operate correctly are Blast Chamber and College Slam.  However this could just be other core related issues because those games seem to only function under the 1.5r core which handles the aforementioned multitap games just fine.

* Mouse control now works for all cores.  For some reason I had it only set for core 1.5.  (Doh!)

* Added in pcsx re-armed CD code for core 1.5 the "Use new CD code" has options No, Yes and Re-Armed now.  I have no idea if the Re-Armed cd code has any advantage over the other ones.  The only thing I do know is that Rayman does not work with it.

-----------------------------------------------------------------------------

PCSXBox - PSX Emulator for XBox v22b25

Updated to madmab edition interface CFv1b21. See "Interface Changelog.txt"

"Lock free.. like it should be!"
"More features than you can shake a stick at!"

* Fixed an issue where Autoconfig had a little bug where when it caused a core switch some information would not get passed correctly.

-----------------------------------------------------------------------------

PCSXBox - PSX Emulator for XBox v22b24

"Lock free.. like it should be!"
"More features than you can shake a stick at!"

* Backed out of some of the memory savings I did to compensate for the software filter fix they caused some games to lock (adidas power soccer 98).

-----------------------------------------------------------------------------

PCSXBox - PSX Emulator for XBox v22b23

"Lock free.. like it should be!"
"More features than you can shake a stick at!"

* Some games (X2 after opening intro) were causing software filters to lockup.  Fixed.

-----------------------------------------------------------------------------

PCSXBox - PSX Emulator for XBox v22b22

Updated to madmab edition interface CFv1b19. See "Interface Changelog.txt"

"Lock free.. like it should be!"
"More features than you can shake a stick at!"

First off...  "You must have at least Disc image for our emulator to work.  Really... how else are you gonna play you silly wabbit?".  :P

* Pcsxbox now consists of 4 cores now.  1.4, 1.5, 1.5 (Reloaded), and 1.6.  1.5 (Reloaded) is 1.5 with additional code to make certain games that were unplayable playable (see below).  I had to do that because the timing values in the reloaded core causes some framerate loss so it is best to use this core for games that it actually improves or makes playable.
Core 1.4, 1.5, and 1.6 mini updates
I added as many "fixes" to cores 1.4, 1.5, and 1.6 that I could without affecting their speed too much and essentially making them into reloaded core "clones".. 

1.5 is just a tad slower than it was without these changes but I feel that implementing them is still the way to go.

* new mdec ( 1.4 - 1.6 ) - this means alot of movie playback issues should be fixed on these cores

* new gte ( 1.4 - 1.6 ) - this means no more graphic glitches on certain games any more (see our screenshot gallery on first page of the private beta thread)

* Added "Fake" 'gpu busy' states ( 1.4 - 1.6 ) (Dukes Of Hazzard, HWTR) however "Hot Wheels Turbo Racing" is not working, hangs on track load.  Only works in 1.5r.

* large sound buffer (1.4 - 1.6) - Still not sure if there are any benefits to this.  Seems to help the XA audio in some games.

* New GPU core added (1.18).

* Added new SPU core 1.10.  It is supposed to improve sound in several games however at the cost of speed.  We still default to 1.9 SPU core however.  1.5r core does not have the SPU 1.10 core added yet.

* New interpolation values for (SPU 1.10 only). "4-tap FIR", "Hermite", "Catmull-Rom", "Catmull-Rom (desharp)".  Chances are they are slower.  I have no clue if they sound better.. :P

* New interpolation value for XA (SPU 1.10 only) "None/Fastest", "Simple", "(Gaussian/Good)", "Cubic(better treble)/Slow", "4-tap FIR", "Hermite", "Catmull-Rom", "Catmull-Rom (desharp)".  Defaults to Gaussian/Good.

* Apparently all along the software filters did not display pixels beyond 512 width properly in 640 width PSX modes.  Fixed.  For those crazy enough to use 1080i video mode, please report to me any lockups on game load or game exit.

* Deleting save states in the save states selection menu was missing some files.  Fixed.
 
* check in spu to prevent crash on exit (1.4 - 1.6)
* soft.c - armymen bullet fix (1.4 - 1.6)
* added CDDA/CDXA attenuation (1.4 - 1.6)

* Twisted Metal 3 now playing proper audio tracks (at least on 1.5)

* Combined the "In Game menu" options "Graphic, CPU and SPU fixes" into one menu so there is less clutter on main In Game menu.

* Removed "FF9 Movie Fix".  It is no longer needed.  Movies were fixed with updated mdec code.

* Replaced "FF9 Movie Fix" with "FF Tactics Sound Fix" which is some code that is supposed to improve the sound in Final Fantasy Tactics but yet has the potential to affect other games.  So I made it a fix (probably needs to be moved to the SPU fixes menu lol).

* Removed "InuYasha Sengoku Battle fix".  This function was made inoperable by the root counter update which fixes (Final Fantasy 8/9, Vandal Hearts 1/2, Wipeout, Lifeforce Tenka).  Also InuYasha is fixed by some changes in the CD-timing code anyways.  So "InuYasha Sengoku" works perfectly fine in cores 1.4, 1.5 and 1.5r.

* Wipeout series no longer needs "InuYasha Sengoku Battle fix" (1.5 reloaded only atm.  Needs verification).

* Odd/even bit hack (Chrono-Cross 112-116) should not be needed anymore.. anyone feel like testing?

* Added in a new option (1.5 core only) "Use New CD Code".  Set this to yes to get Rayman, TR 1 & 2, Loderunner 2 to work.  You can also try setting it to yes for other games that wont load to see if it will work.

------------
Core Changes
------------

* Action lists were not completely activated.  Fixed.

* Modified the config db to take into account Trusty entries. So we can have entries in the db for Trusty and Stock xbox's.

* Put in "cuesheet" reading code for CloneCD (.ccd/.img) images, and Alcohol 120% (.mds/.mdf) images.

* Modified cue sheet reader to be able to handle "PREGAP" statements.

* .ccd/.img files with cdda should work properly now (aka no hangs).

* This is kinda experimental.  I modified the CDDA buffer so that it is halved if not streaming across a network share.  Seems to help with music playback (Bubble bobble 99' .ccd/.img).  May just be my pc I have the samba share on is bogged down.. :P

* Added in support for mouse (port 1 only atm).  Mouse can be controlled by a real mouse.  Left/right analog stick selectable.  Mouse in psx port 1 is controlled by the 1st mouse found or controller 1.  On the xbox controllers X = lmb, Circle = rmb, and Triangle = mmb.

* Fixed playback/record.  It wasn't working.  Although it seems it can still occasionaly get out of synch.

* Added game specific hacks for Re*Volt, Contra - Legacy Of War, Thousand Arms, Toy Story 2, Tony Hawk Pro Skater, and Tony Hawk Pro Skater 2.  Hack as in specific parts of the emulation behaviour is changed when these games are loaded.  I'm still not sure how much of this I'm gonna keep.  But that is what we have for now.

* Fixed stuttering issue with training level in Tomb Raider 2.  In more technical terms the code was not properly stopping the cdda when the track ended.

* Most of the "default" options have parens around them to make it more clear what is a default value.  For example (Gaussian/Good) for the default Interpolation value.

* Slightly modified cheat code description handling.  If a description starts with "= it will be considered the latest "header" and then all subsequent descriptions will have that header added.

* Moved "Use Multitap" option into the "Pcsxbox Controller Setup" menu

* Wrong CDDA track was being played in some games/cases (fixed).

* All options are reset to default when selecting new game (with no configuration)

* Disabled "Upload/Download Configuration From XPort Website".  It's been defunct for years and auto-config DB will soon replace it.
New cpu settings
* Experimental Speed Increase - Seems to help improve XA sound speed in games and XA sound in the movies in games (opening movie lemmings, music in rhapsody).  No detrimental issues I've seen yet.

* Xbox Bias - When set to 4 it can speed a game up.  However the things it can break are either the games controls or you will see things like movies being cut off sooner than usual and other odd behaviour like that.

* Use PC fps calculation - sometimes turning this one can improve the timing of movies in games that use the in game engine for cutscenes (spyro).
Games that should be running but aren't
Soviet Strike -> Was working early on in the beta.

Time Crisis 2 -> only works in redux with old GTE code.

------
Issues
------

- SPU 1.9 seems to have a few "quirks".. (Vagrant Story cut-scenes when guys walk. possiby FF Tactics).  This may have already existed in earlier versions of Pcsxbox.

--------------
Considerations
--------------

- On the correct CDDA track not playing properly. If you suspect a particular game is not playing the right track then please try and find a video on youtube or somewhere to confirm this. Just so we can be sure. But I'm pretty sure I got this nailed down now.

- PPF code is now present.  If anyone can think of any worthwhile PPF patches to use I can try activating the code.

- Consider adding negcon support.

- see if vsync option is available or is on/off.

- Need to decide if the FF8 movie hack is worth it (messes up a bunch of other games).  Probably needs a game specific hack.

- Look into handling gameshark 0x50 codes (although there will be some form of limitation put on it)

- Code to handle games that request audio in the middle of a CDDA track needs to be looked over.  So far "Re-Volt" is the only game I've run across that does this, however the code broke other CDDA games so I had to hard code this to only activate when playing "Re-Volt".

Games that need checking/verification
These games should be working/fixed in some way.. I just have not been able to verify.  I also need to find out what works in which core.

1.4 -> (boots) Ape Escape, Destruction Derby, Doom, Final Doom, Lemmings & Oh No More Lemmings, Syphon Filter 1 thru 3.  (working/playable) Lifeforce (Codename) Tenka, Shadow Madness (map), Thousand Arms, Threads of Fate (Fix Rue's Quest House Bug) (Untested).

1.5 -> (boots) Ape Escape, Destruction Derby, Doom, Final Doom, Lemmings & Oh No More Lemings, Road Rash 3D, Syphon Filter 1 thru 3, Twisted Metal: Small Brawl.  (working/playable) Eggs of Steel, Judge Dredd, Lifeforce (Codename) Tenka, Shadow Madness (map), Thousand Arms, Threads of Fate (Fix Rue's Quest House Bug) (Untested), Vandal Hearts 1, Wipeout.  Fix Skullmonkey's menu's, gameplay backdrops (never a problem?).

1.5 (set "Use new CD code" to Yes) -> Lode Runner 2 Superlite, Megaman Legends 2, Rayman, Tomb Raider I and II

1.5r -> (working/playable) Ace Combat 2, 007 - The World Is Not Enough, 007 - Tommorrow Never Dies, Croc, Devil Dice, Dukes Of Hazard II, Hot Wheels Turbo Racing, Lode Runner, Lode Runner 2 Superlite, Megaman Legends 2, Rayman, Tekken 2?, Tempest X, Thousand Arms, Tomb Raider I and II.   (speech) Space Hulk.

1.6 -> (boots) Ape Escape, Destruction Derby, Doom, Final Doom, Road Rash 3D, Shadow Madness (map), Syphon Filter 1 thru 3, Twisted Metal: Small Browl.  (working/playable) Judge Dredd, Thousand Arms, Threads of Fate (Fix Rue's Quest House Bug) (Untested), Fix Skullmonkey's menu's, gameplay backdrops (never a problem?).

Games that work but not sure which cores -> (boots) Battle Arena Toshinden, Batman Beyond: Return Of The Joker, Bogey Dead 6, Brain Dead 13, Broken Sword 2, Buster Bros. Collection, Chef's Love Shack, Colony Wars III, Contra C12: The Final Resistance, Cyberia, CyberTiger Gold, Descent, Destruction Derby II, Dukes Of Hazzard, Extreme Pinball (slow loading), Future Cop LAPD, Jeopardy, Lode Runner, Lode Runner 2, Lucky Luke, Myst, Nightmare Creatures, Po'ed, Rascal, Rat Attack, Rayman Brain Games, Reboot, Revolution X, Romance Of The Three Kingdoms IV, Romance Of The Three Kingdoms VI, Sentient, Slamscape, Space Invaders, Star Wars - Episode I - Phantom Menace, Tennis, Tomb Raider III/IV and Classic (may have already been playable), Ultimate Brain Games, Vigilante 8, Vigilante 8: 2nd Offense, Wrecking Crew, Wu-Tang - Shaolin Style, Zero Divide.  (working/playable) Area 51 (split screen), Blast Chamber (speed?), Legend of Legaia, Maximum Force (split screen), Rhapsody A Musical Adventure, Robotron X (speed), Speedball 2100 (speed?), Star Wars Rebel Assault 2, War Gods (speed), WCE Nitro (speed), Wipeout (speed), Wipeout XL (speed), X-Files

Games improved by new GTE -> A Bug's Life (flick), Ace Combat 3 (ship textures), Apocalypse (sewer level), C The Contra Adventure (lower half of screen), Crash Bandicoot 3 (water levels), Crash Team Racing (characters in cars), Matt Hoffman's Pro BMX, NFL Blitz 2001 (players), RC Stunt Copter (the copter), Spiderman (building walls), Tomb Raider 4 (strange green colors)

(1.5 & reloaded) (HLE BIOS) -> changes to fix crashing problems with FF7, Xenogears, chocobo racing, Star Ocean: The Second Story (not sure if these problems existed on xbox)

* Dukes Of Hazzard 2 - (1.5r) cpu interpreter-> on, lazy screen updates/oldframskipping -> on, framelimit -> off (game is real slow)

* Medievil 2 does not work in in reloaded core (needs to be verified)

* Fixed/Improved (reloaded only) - Megaman X5 (speed and movies more consistent).  (needs verification)

Note on Ape Escape.. There is a fairly current changeset that I had not implemented yet.  It does not say what it does or if it fixes any issues.

* Fixed issue with screen size/position randomly changing when using global override and custom screen/size position.

* Based on user feedback removed the following software filters 2xSai Scanline, 4xSai Scanline, Super 2xSai Scanline, Super 4xSai Scanline, Eagle 2x Scanline, Eagle 4x Scanline, Super Eagle2x Scanline, Super Eagle4x Scanline.

*****************************
* Interface Related Changes *
*****************************

*********************************
* New Scanline Software Filters *
*********************************

* Added 6 new software filters from GensX and 2 from NeoGeo CD emulator to the the x-port arsenal.  

* They are as follows Scanlines Filter and Scanlines 50 Filter from NeoGeo CD and Full Scanline, Interpolated Scanline, 50% Scanline, Interpolated 50% Scanline, 25% Scanline, Interpolated 25% Scanline from GensX.

* These will be added to emulators as I can and will be reported in each emu's latest changes text file.

* Here are the current rules for the scanline filters..  These may change as more testing occurs.

The filters can be found in the "software filter" section towards the end of the list.

-------------------------------------
When you select a new scanline filter
-------------------------------------

If the game video mode is an HD mode the hardware filter will be changed to bilinear filter because the point filter does not look right unless Y pos is set to -1 and who wants part of the top of their screen missing. Flicker filter Level will be left alone.

If the game video mode is an SD mode the flicker filter level will be set to 2. Hardware filter will be left alone.

-----------------------------------
When you change the game video mode
-----------------------------------

If the game video mode is an HD mode and the software filter is a "GensX scanline filter" the hardware filter will be changed to bilinear filter because the point filter does not look right unless Y pos is set to -1 and who wants part of the top of their screen missing. Flicker filter Level will be left alone.

If the game video mode is an SD mode and the software filter is a "GensX scanline filter" the flicker filter level will be set to 2. Hardware filter will be left alone.

----------------------------------------
How the video size/screen position works
----------------------------------------

With the exception of "custom" video size/screen position. If you have the software filter set to a "GensX Scanline Filter" then the following rules apply. Otherwise it does what it always did.

If the game video mode is an HD mode the hardware filter will be changed to bilinear filter because the point filter does not look right unless Y pos is set to -1 and who wants part of the top of their screen missing. Flicker filter Level will be left alone.

If the game video mode is an SD mode the flicker filter level will be set to 2. Hardware filter will be left alone.

*********************************
* End Scanline Software Filters *
*********************************
